In the field of computer science, object-oriented design has become a prevalent approach for designing software. Using object-oriented designed methodologies, a designer may implement a base class representing a object, such as an automobile. The designer may assign attributes to the base class representing characteristics of the object which are generally present all instances of the object. In case of an automobile, these characteristics may include an engine and a steering wheel. When a derived class representing a subclass of the object is derived from the base class, the derived class inherits the attributes of the base class, but can also be extended with new attributes. Thus, a “convertible” class derived from the automobile class will inherit the engine and steering wheel attributes, and may extend these with a new roof-retraction mechanism attribute. It may also be possible to override base class attributes in a derived class. For example, if the steering wheel attribute of the base class specifies a location of the steering wheel on the left hand side of the dashboard (North American automobiles), a derived “European sports car” class might override this attribute to specify a location of the steering wheel on the right hand side of the dashboard.
It would be advantageous to be capable of using a markup language, such as extensible markup language (XML), to represent an object-oriented derived class which extends or overrides base class characteristics.